
#pragma once

#ifndef _N63C_OIDS_H
	#define _N63C_OIDS_H

// ------------------------------------------------------------------------------------------------
// Definitions 
// ------------------------------------------------------------------------------------------------

// Set the correct state which the OID can be accepted
#define STATE_DEVICE_INIT 	BIT0
#define STATE_GO_INIT		BIT1
#define STATE_GO_OP			BIT2
#define STATE_CLIENT_INIT	BIT3
#define STATE_CLIENT_OP		BIT4

typedef ULONG OID_CORRECT_STATE;


// Forward Declaration
typedef enum _P2P_ROLE P2P_ROLE, * PP2P_ROLE;

// For resetting the Wifi-Direct port
typedef enum _RESET_LEVEL
{
	RESET_LEVEL_P2P_ONLY = 0,
	RESET_LEVEL_FULL
}RESET_LEVEL, * PRESET_LEVEL;

//--------------------------------------------------------------------------------------
// Public Functions
//--------------------------------------------------------------------------------------

VOID
N63CValidateRoleOfWifiDirectPorts(
	PADAPTER pAdapter
);

VOID
N63CResetNetworkListOffload(
	PADAPTER pAdapter
);

NDIS_STATUS
N63CResetWifiDirectPorts(
	PADAPTER pAdapter,
	P2P_ROLE PortRole,
	RESET_LEVEL ResetLevel
);


VOID
N63CIndicateP2PEvent(
	PVOID pP2PInfo, 
	u4Byte EventID,
	PMEMORY_BUFFER pInformation
);

NDIS_STATUS
N63C_OID_DOT11_WFD_DEVICE_CAPABILITY(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_GROUP_OWNER_CAPABILITY(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_DEVICE_INFO(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_DISCOVER_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_STOP_DISCOVERY(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_GET_DIALOG_TOKEN(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_ENUM_DEVICE_LIST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_LISTEN_STATE_DISCOVERABILITY(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_DEVICE_LISTEN_CHANNEL(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_ADDITIONAL_IE(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_FLUSH_DEVICE_LIST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_GO_NEGOTIATION_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_GO_NEGOTIATION_RESPONSE(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_GO_NEGOTIATION_CONFIRMATION(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_INVITATION_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_INVITATION_RESPONSE(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_RESPONSE(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_DESIRED_GROUP_ID(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_START_GO_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_GROUP_START_PARAMETERS(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_CONNECT_TO_GROUP_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);


NDIS_STATUS
N63C_OID_DOT11_WFD_DISCONNECT_FROM_GROUP_REQUEST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_WFD_GROUP_JOIN_PARAMETERS(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_OFFLOAD_NETWORK_LIST(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_DOT11_POWER_MGMT_MODE_STATUS(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

NDIS_STATUS
N63C_OID_PACKET_COALESCING_FILTER_MATCH_COUNT(
	PADAPTER pAdapter,
	PNDIS_OID_REQUEST NdisRequest
);

#endif
